package pkg

import (
	"fmt"

	termbox "github.com/nsf/termbox-go"
)

type Col struct {
	Basic
}

// 行只算列数 不是table 没有row的概念了
type Row struct {
	Basic
	Col []Col // 每行的列
}

// 计算行列数
// 参数 每个col的【长|宽】
// 结果 列数
func (this Row) CalCol(width, height int) Row {
	// 每行高度
	// colHeight := height + 2
	// 每行宽度
	colWidth := width + 3
	// col开始X坐标
	colStartX := this.StartX + 1
	// col开始Y坐标
	colStartY := this.StartY + 1
	// 行数
	colNum := int(this.LengthX / colWidth)
	// fmt.Println(colNum, this.LengthX, colWidth)
	// // 列数
	// rowNum := int(this.LengthY / colHeight)
	for i := 0; i < colNum; i++ {
		tmp := Col{}
		tmp.StartX = colStartX
		tmp.StartY = colStartY
		tmp.LengthX = width
		tmp.LengthY = height
		tmp.Fg = termbox.ColorYellow
		tmp.Bg = termbox.ColorDefault
		// tmp.SetValueH(fmt.Sprintf("%dabc", i))
		this.Col = append(this.Col, tmp)
		colStartX += width + 1
	}
	return this
}

// 根据列数进行画图
func (this Row) Draw() Row {
	this.Border()
	for i, x := range this.Col {
		x.Border()
		// x.SetValueH(fmt.Sprintf("%dabc", i))
		x.SetValueS(fmt.Sprintf("%dabc", i))
	}
	return this
}

// 默认自定义 3
func (this Row) AutoRender() Row {
	// if this.Col != nil {

	// }

	// 计算行数
	this.CalCol(4, this.LengthY-2).Draw()
	return this
}
